angular.module('portainer.docker')
    .factory('ExecService', ['$q', '$timeout', 'Exec', function ExecServiceFactory($q, $timeout, Exec) {
        'use strict';
        var service = {};

        service.resizeTTY = function (execId, width, height, timeout) {
            var deferred = $q.defer();

            $timeout(function() {
                Exec.resize({}, {id: execId, height: height, width: width}).$promise
                    .then(function success(data) {
                        if (data.message) {
                            deferred.reject({msg: "Unable to resize tty of exec", err: data.message});
                        } else {
                            deferred.resolve(data);
                        }
                    })
                    .catch(function error(err) {
                        deferred.reject({msg: "Unable to resize tty of exec", err: err});
                    });
            }, timeout);

            return deferred.promise;
        };

        return service;
    }]);
